function [RX_Output_Frames fadingSymbols, MSE_Real, MSE, OUT_Channel_OUT] = DFE_Equalizer(RX_IN_Filtered,...
    Start_Sample,Oversample, N_Frames,Rate,EsNoRatio, Original_RX_IN,...
    Hard, N1,N2, Original_Start)


%%
% ************************************************************* %
% *********************** Parameters **************************** %
% ************************************************************* %
Start = Start_Sample;
Original_Start_used = (Original_Start + 1) + (184 + 103) * Oversample;
Training_Length = 31;
Data_Length = 256;
DataAfter_Length = 100;

estimation_length = 31*Oversample;
ChLength = 6*Oversample;
% ************************************************************* %

%%
% ************************************************************* %
% ********************** Equalization ***************************** %
% ************************************************************* %
[RX_Output_Frames(1,:) OUT_Channel] = MMSE_DFE_Equalizer(RX_IN_Filtered, Original_RX_IN,...
    Oversample, EsNoRatio, Rate, Hard, N1, N2, Training_Length, Data_Length, estimation_length, ChLength,...
    DataAfter_Length, Start, Original_Start_used);

OUT_Channel_OUT = OUT_Channel;
fadingSymbols(1,:) = sum(abs(OUT_Channel).^2);
% ************************************************************* %



%%
for frame_index =2 :N_Frames
    
    if mod(frame_index-1,72) == 0
        Start = Start + (31 + 256 + 31 + 41)*Oversample;
        Original_Start_used = Original_Start_used + (256 + 103)*Oversample;
    else
        Start = Start + (31 + 256)*Oversample ;
        Original_Start_used = Original_Start_used + (31 + 256)*Oversample ;
    end
    
    % Equalization
    % ---------------
    [RX_Output_Frames(frame_index,:) OUT_Channel] = MMSE_DFE_Equalizer(RX_IN_Filtered, Original_RX_IN,...
        Oversample, EsNoRatio, Rate, Hard, N1, N2, Training_Length, Data_Length, estimation_length, ChLength,...
        DataAfter_Length, Start, Original_Start_used);
    
    OUT_Channel_OUT = [OUT_Channel_OUT OUT_Channel];
    fadingSymbols(frame_index,:) = sum(abs(OUT_Channel).^2);
    % *********************************************************** %
    
end

MSE_Real =ones(72,256);
MSE = ones(72,1);

end




















